package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户档案对象 water_user
 *
 * @author ruoyi
 * @date 2025-09-25
 */
public class WaterUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 公司id */
    @Excel(name = "公司id")
    private String companyId;

    /** 公司名称 */
    @Excel(name = "公司名称")
    private String companyName;

    /** 用户id */
    @Excel(name = "用户id")
    private String userId;

    /** 用户名称 */
    @Excel(name = "用户名称")
    private String userName;

    /** 用户类型;居民生活用水(阶梯式水价) 居民生活用水(非阶梯式水价) 非居民生活用水 特种用水 */
    @Excel(name = "用户类型;居民生活用水(阶梯式水价) 居民生活用水(非阶梯式水价) 非居民生活用水 特种用水")
    private String priceType;

    /** 价格编号 */
    @Excel(name = "价格编号")
    private String priceCode;

    /** 受理编号 */
    @Excel(name = "受理编号")
    private String acceptCode;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 用水地址 */
    @Excel(name = "用水地址")
    private String waterAddress;

    /** 法定代表人 */
    @Excel(name = "法定代表人")
    private String legalPerson;

    /** 经办人 */
    @Excel(name = "经办人")
    private String responsiblePerson;

    /** 联系方式 */
    @Excel(name = "联系方式")
    private String contactInfo;

    /** 客户类型;1企业，2院校，3行政事业单位，4个体工商户，5其他 */
    @Excel(name = "客户类型;1企业，2院校，3行政事业单位，4个体工商户，5其他")
    private String userType;

    /** 给水类别;1新安装，2迁移，3增容，4减容，5复装，6改装(改口径,移表位)，7其他 */
    @Excel(name = "给水类别;1新安装，2迁移，3增容，4减容，5复装，6改装(改口径,移表位)，7其他")
    private String supplyType;

    /** 临时用水日期起始 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "临时用水日期起始", width = 30, dateFormat = "yyyy-MM-dd")
    private Date tempWaterDateStart;

    /** 临时用水日期结束 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "临时用水日期结束", width = 30, dateFormat = "yyyy-MM-dd")
    private Date tempWaterDateEnd;

    /** 正式用水日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "正式用水日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date officialWaterDate;

    /** 改装申请原表户名 */
    @Excel(name = "改装申请原表户名")
    private String oldUserName;

    /** 建筑许可证材料名称 */
    @Excel(name = "建筑许可证材料名称")
    private String constructionPermitName;

    /** 建设期计划用水人数 */
    @Excel(name = "建设期计划用水人数")
    private String constructionUserNum;

    /** 建设期用水量 */
    @Excel(name = "建设期用水量")
    private String constructionWaterNum;

    /** 运营期计划用水人数 */
    @Excel(name = "运营期计划用水人数")
    private String operationUserNum;

    /** 运营期用水量 */
    @Excel(name = "运营期用水量")
    private String operationWaterNum;

    /** 运营期非居民用水量 */
    @Excel(name = "运营期非居民用水量")
    private String operationUserResidentNum;

    /** 运营期居民用水量 */
    @Excel(name = "运营期居民用水量")
    private String operationUserBusinessNum;

    /** 接驳口位置说明 */
    @Excel(name = "接驳口位置说明")
    private String portLocation;

    /** 接水示意图 */
    @Excel(name = "接水示意图")
    private String waterPic;

    /** 规划部建设工程规划许可证 */
    @Excel(name = "规划部建设工程规划许可证")
    private String buildLicence;

    /** 建设项目规划选址定位图或产权证明文件 */
    @Excel(name = "建设项目规划选址定位图或产权证明文件")
    private String titleDeed;

    /** 市政建设配套费 */
    @Excel(name = "市政建设配套费")
    private String constructionCost;

    /** 用水项目建筑总平面图电子版和蓝图 */
    @Excel(name = "用水项目建筑总平面图电子版和蓝图")
    private String blueDesign;

    /** 用水项目综合管线及给排水专业图;用水项目综合管线及给排水专业图(CAD图+PDF电子版(dwg格式)) */
    @Excel(name = "用水项目综合管线及给排水专业图;用水项目综合管线及给排水专业图(CAD图+PDF电子版(dwg格式))")
    private String waterSupplyPic;

    /** 用水项目给排水底层平面图;仅申请一户一表安装或改造时提供 */
    @Excel(name = "用水项目给排水底层平面图;仅申请一户一表安装或改造时提供")
    private String waterUnderPic;

    /** 余额 */
    @Excel(name = "余额")
    private BigDecimal remainingsum;

    /** 欠费额 */
    @Excel(name = "欠费额")
    private BigDecimal arrearagesum;

    /** 营业执照 */
    @Excel(name = "营业执照")
    private String businessLicense;

    /** 法定代表人身份证复印件 */
    @Excel(name = "法定代表人身份证复印件")
    private String legalPersonLicense;

    /** 经办人身份证复印件 */
    @Excel(name = "经办人身份证复印件")
    private String handlelPersonLicense;

    /** 居民客户身份证复印件 */
    @Excel(name = "居民客户身份证复印件")
    private String personLicense;

    /** 随表附件资料 */
    @Excel(name = "随表附件资料")
    private String moreLicense;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCompanyId(String companyId)
    {
        this.companyId = companyId;
    }

    public String getCompanyId()
    {
        return companyId;
    }
    public void setCompanyName(String companyName)
    {
        this.companyName = companyName;
    }

    public String getCompanyName()
    {
        return companyName;
    }
    public void setUserId(String userId)
    {
        this.userId = userId;
    }

    public String getUserId()
    {
        return userId;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setPriceType(String priceType)
    {
        this.priceType = priceType;
    }

    public String getPriceType()
    {
        return priceType;
    }
    public void setPriceCode(String priceCode)
    {
        this.priceCode = priceCode;
    }

    public String getPriceCode()
    {
        return priceCode;
    }
    public void setAcceptCode(String acceptCode)
    {
        this.acceptCode = acceptCode;
    }

    public String getAcceptCode()
    {
        return acceptCode;
    }
    public void setProjectName(String projectName)
    {
        this.projectName = projectName;
    }

    public String getProjectName()
    {
        return projectName;
    }
    public void setWaterAddress(String waterAddress)
    {
        this.waterAddress = waterAddress;
    }

    public String getWaterAddress()
    {
        return waterAddress;
    }
    public void setLegalPerson(String legalPerson)
    {
        this.legalPerson = legalPerson;
    }

    public String getLegalPerson()
    {
        return legalPerson;
    }
    public void setResponsiblePerson(String responsiblePerson)
    {
        this.responsiblePerson = responsiblePerson;
    }

    public String getResponsiblePerson()
    {
        return responsiblePerson;
    }
    public void setContactInfo(String contactInfo)
    {
        this.contactInfo = contactInfo;
    }

    public String getContactInfo()
    {
        return contactInfo;
    }
    public void setUserType(String userType)
    {
        this.userType = userType;
    }

    public String getUserType()
    {
        return userType;
    }
    public void setSupplyType(String supplyType)
    {
        this.supplyType = supplyType;
    }

    public String getSupplyType()
    {
        return supplyType;
    }
    public void setTempWaterDateStart(Date tempWaterDateStart)
    {
        this.tempWaterDateStart = tempWaterDateStart;
    }

    public Date getTempWaterDateStart()
    {
        return tempWaterDateStart;
    }
    public void setTempWaterDateEnd(Date tempWaterDateEnd)
    {
        this.tempWaterDateEnd = tempWaterDateEnd;
    }

    public Date getTempWaterDateEnd()
    {
        return tempWaterDateEnd;
    }
    public void setOfficialWaterDate(Date officialWaterDate)
    {
        this.officialWaterDate = officialWaterDate;
    }

    public Date getOfficialWaterDate()
    {
        return officialWaterDate;
    }
    public void setOldUserName(String oldUserName)
    {
        this.oldUserName = oldUserName;
    }

    public String getOldUserName()
    {
        return oldUserName;
    }
    public void setConstructionPermitName(String constructionPermitName)
    {
        this.constructionPermitName = constructionPermitName;
    }

    public String getConstructionPermitName()
    {
        return constructionPermitName;
    }
    public void setConstructionUserNum(String constructionUserNum)
    {
        this.constructionUserNum = constructionUserNum;
    }

    public String getConstructionUserNum()
    {
        return constructionUserNum;
    }
    public void setConstructionWaterNum(String constructionWaterNum)
    {
        this.constructionWaterNum = constructionWaterNum;
    }

    public String getConstructionWaterNum()
    {
        return constructionWaterNum;
    }
    public void setOperationUserNum(String operationUserNum)
    {
        this.operationUserNum = operationUserNum;
    }

    public String getOperationUserNum()
    {
        return operationUserNum;
    }
    public void setOperationWaterNum(String operationWaterNum)
    {
        this.operationWaterNum = operationWaterNum;
    }

    public String getOperationWaterNum()
    {
        return operationWaterNum;
    }
    public void setOperationUserResidentNum(String operationUserResidentNum)
    {
        this.operationUserResidentNum = operationUserResidentNum;
    }

    public String getOperationUserResidentNum()
    {
        return operationUserResidentNum;
    }
    public void setOperationUserBusinessNum(String operationUserBusinessNum)
    {
        this.operationUserBusinessNum = operationUserBusinessNum;
    }

    public String getOperationUserBusinessNum()
    {
        return operationUserBusinessNum;
    }
    public void setPortLocation(String portLocation)
    {
        this.portLocation = portLocation;
    }

    public String getPortLocation()
    {
        return portLocation;
    }
    public void setWaterPic(String waterPic)
    {
        this.waterPic = waterPic;
    }

    public String getWaterPic()
    {
        return waterPic;
    }
    public void setBuildLicence(String buildLicence)
    {
        this.buildLicence = buildLicence;
    }

    public String getBuildLicence()
    {
        return buildLicence;
    }
    public void setTitleDeed(String titleDeed)
    {
        this.titleDeed = titleDeed;
    }

    public String getTitleDeed()
    {
        return titleDeed;
    }
    public void setConstructionCost(String constructionCost)
    {
        this.constructionCost = constructionCost;
    }

    public String getConstructionCost()
    {
        return constructionCost;
    }
    public void setBlueDesign(String blueDesign)
    {
        this.blueDesign = blueDesign;
    }

    public String getBlueDesign()
    {
        return blueDesign;
    }
    public void setWaterSupplyPic(String waterSupplyPic)
    {
        this.waterSupplyPic = waterSupplyPic;
    }

    public String getWaterSupplyPic()
    {
        return waterSupplyPic;
    }
    public void setWaterUnderPic(String waterUnderPic)
    {
        this.waterUnderPic = waterUnderPic;
    }

    public String getWaterUnderPic()
    {
        return waterUnderPic;
    }
    public void setRemainingsum(BigDecimal remainingsum)
    {
        this.remainingsum = remainingsum;
    }

    public BigDecimal getRemainingsum()
    {
        return remainingsum;
    }
    public void setArrearagesum(BigDecimal arrearagesum)
    {
        this.arrearagesum = arrearagesum;
    }

    public BigDecimal getArrearagesum()
    {
        return arrearagesum;
    }
    public void setBusinessLicense(String businessLicense)
    {
        this.businessLicense = businessLicense;
    }

    public String getBusinessLicense()
    {
        return businessLicense;
    }
    public void setLegalPersonLicense(String legalPersonLicense)
    {
        this.legalPersonLicense = legalPersonLicense;
    }

    public String getLegalPersonLicense()
    {
        return legalPersonLicense;
    }
    public void setHandlelPersonLicense(String handlelPersonLicense)
    {
        this.handlelPersonLicense = handlelPersonLicense;
    }

    public String getHandlelPersonLicense()
    {
        return handlelPersonLicense;
    }
    public void setPersonLicense(String personLicense)
    {
        this.personLicense = personLicense;
    }

    public String getPersonLicense()
    {
        return personLicense;
    }
    public void setMoreLicense(String moreLicense)
    {
        this.moreLicense = moreLicense;
    }

    public String getMoreLicense()
    {
        return moreLicense;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("companyId", getCompanyId())
                .append("companyName", getCompanyName())
                .append("userId", getUserId())
                .append("userName", getUserName())
                .append("priceType", getPriceType())
                .append("priceCode", getPriceCode())
                .append("acceptCode", getAcceptCode())
                .append("projectName", getProjectName())
                .append("waterAddress", getWaterAddress())
                .append("legalPerson", getLegalPerson())
                .append("responsiblePerson", getResponsiblePerson())
                .append("contactInfo", getContactInfo())
                .append("userType", getUserType())
                .append("supplyType", getSupplyType())
                .append("tempWaterDateStart", getTempWaterDateStart())
                .append("tempWaterDateEnd", getTempWaterDateEnd())
                .append("officialWaterDate", getOfficialWaterDate())
                .append("oldUserName", getOldUserName())
                .append("constructionPermitName", getConstructionPermitName())
                .append("constructionUserNum", getConstructionUserNum())
                .append("constructionWaterNum", getConstructionWaterNum())
                .append("operationUserNum", getOperationUserNum())
                .append("operationWaterNum", getOperationWaterNum())
                .append("operationUserResidentNum", getOperationUserResidentNum())
                .append("operationUserBusinessNum", getOperationUserBusinessNum())
                .append("portLocation", getPortLocation())
                .append("waterPic", getWaterPic())
                .append("buildLicence", getBuildLicence())
                .append("titleDeed", getTitleDeed())
                .append("constructionCost", getConstructionCost())
                .append("blueDesign", getBlueDesign())
                .append("waterSupplyPic", getWaterSupplyPic())
                .append("waterUnderPic", getWaterUnderPic())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("remainingsum", getRemainingsum())
                .append("arrearagesum", getArrearagesum())
                .append("businessLicense", getBusinessLicense())
                .append("legalPersonLicense", getLegalPersonLicense())
                .append("handlelPersonLicense", getHandlelPersonLicense())
                .append("personLicense", getPersonLicense())
                .append("moreLicense", getMoreLicense())
                .toString();
    }
}
